import { createPinia } from 'pinia';
import { createPersistedState } from 'pinia-plugin-persistedstate';

import Cookies from 'js-cookie';

// 创建自定义的 Cookie 存储对象
const cookieStorage = {
    getItem(key) {
        return Cookies.get(key);
    },
    setItem(key, value) {
        // 设置 7 天过期时间，可根据需要调整
        Cookies.set(key, value, {
            expires: 7,
            secure: process.env.NODE_ENV === 'production', // 生产环境启用 HTTPS
            sameSite: 'Lax', // 防止 CSRF 攻击
            path: '/' // 全站可访问
        });
    },
    removeItem(key) {
        Cookies.remove(key);
    }
};

const pinia = createPinia();
pinia.use(createPersistedState({
    storage: cookieStorage,
    serializer: {
        // 自定义序列化/反序列化逻辑
        serialize: JSON.stringify,
        deserialize: JSON.parse
    }
}));

export default pinia;